//
//  RAC_liftSelector.m
//  ReactiveCocoa
//
//  Created by apple on 2017/9/9.
//  Copyright © 2017年 apple. All rights reserved.
//

#import "RAC_liftSelector.h"
#import <ReactiveObjC/ReactiveObjC.h>
@interface RAC_liftSelector ()

@end

@implementation RAC_liftSelector

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    self.view.backgroundColor = [UIColor orangeColor];
    
    
#pragma 请求数据 - RAC - rac_liftSelector - 当一个页面有多个展示URL的时候 使用此方法 可以等到两个URL都请求到数据 再去搭建UI
    
    RACSignal *newSignal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {
        
        //这里可以写loading状态 - WSProgress
        //这里使用AFN写service - 然后得到数据
        
        //把数据发送出去
        [subscriber sendNext:@"请求到的最新数据"];
        
        return nil;
    }];
    
    RACSignal *hotSignal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {
        
        //这里可以写loading状态 - WSProgress
        //这里使用AFN写service - 然后得到数据
        
        //把数据发送出去
        [subscriber sendNext:@"请求到的最热数据"];
        
        return nil;
    }];
    
    //此方法 - 当AFN service 请求到数据 - 数据存在的时候 且发送过来了 - 才会走updateUI方法去更新UI
    //并且 updateUI：带的参数就是请求到的数据 可以直接用
    [self rac_liftSelector:@selector(updateUI:hotData:) withSignalsFromArray:@[newSignal, hotSignal]];
    
    

    
    
}



//在此方法更新UI
- (void)updateUI:(NSString *)newSignalData hotData:(NSString *)hotSignalData{
    
    //这里可以loading状态 dismiss掉
    
    //updateUI：参数newSignalData：是请求到的数据 -有值的("请求到的数据")
    NSLog(@"newSignalData = %@",newSignalData);
    NSLog(@"hotSignalData = %@",hotSignalData);
    
    //更新UI
}


@end
